package controllers;


import models.*;
import play.data.Form;
import play.mvc.*;
import views.html.*;
import java.sql.Date;
import java.sql.Timestamp;

public class Articles extends Controller {

	public static Result index() {
        return ok(articlesClient.render(
        	"Vous pouvez commencer à saisir ...",
        	Article.find.orderBy("libelle_article").findList(), 
        	Utilisateur.find.where().eq("pseudo_utilisateur", session("pseudo_utilisateur")).findUnique()
        ));
    }
	
	public static Result add() {
		final Form<Article> articleForm = form(Article.class).bindFromRequest();

		if (articleForm.hasErrors()) {
			flash("error", "non,non,il faut saisir autre choses!");
		} else {
			final Article article = articleForm.get();

			article.save();

		}
		return ok(nouvelleproposition.render(
				Utilisateur.find.where().eq("pseudo_utilisateur", session("pseudo_utilisateur")).findUnique(),
				"ok,nouvelle proposition", Categorie.find.orderBy("libelle_categorie")
						.findList(),
				Article.find.fetch("category").orderBy("libelle_article")
						.findList(), Proposition.findFirst()));

	}

	public static Result edit(Long id) {
		Article article = Article.findById(id);
		Form<Article> articleForm = form(Article.class).bindFromRequest();
		return ok(modifyform.render(Utilisateur.find.where().eq("pseudo_utilisateur", session("pseudo_utilisateur")).findUnique(),"edit a product", article,
				articleForm));
		// flash("success", "Computer has been deleted");

	}

	public static Result update(Long id) {
		Article article = Article.findById(id);

		Form<Article> articleForm = form(Article.class).bindFromRequest();
		if (articleForm.hasErrors()) {
			flash("error", "non,non,il faut saisir autre choses!");
		}
		articleForm.get().update(id);

		return ok(nouvelleproposition.render(Utilisateur.find.where().eq("pseudo_utilisateur", session("pseudo_utilisateur")).findUnique(),
				"ok,nouvelle proposition", Categorie.find.orderBy("libelle_categorie")
						.findList(),
				Article.find.fetch("category").orderBy("libelle_article")
						.findList(), article.proposition));
	}
	
	public static Result ajouterArticle(Long id) {
		Timestamp st = new Timestamp(System.currentTimeMillis());
		Date date_jour = new Date(st.getTime());
		;
		Commande commande = Commande.findByUserid(Utilisateur.find.where()
				.eq("pseudo_utilisateur", session("pseudo_utilisateur"))
				.findUnique());
		if (commande == null) {
			commande = new Commande(0, date_jour, "validé", Utilisateur.find
					.where()
					.eq("pseudo_utilisateur", session("pseudo_utilisateur"))
					.findUnique());
		}

		final Form<Article> articleForm = form(Article.class).bindFromRequest();
		final Article article = articleForm.get();
		commande.ajouterArticle(article);
		commande.save();
		return redirect(routes.Articles.index());
	}
}
